﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Mimoza.Transport;

namespace Mimoza.AgentLayer.Communication
{
    public class RequestRegisterNewHost : TransferObjectGeneric<RequestRegisterNewHost, ReplyRegisterNewHost>
    {
        public RequestRegisterNewHost()
        {
        }

        public RequestRegisterNewHost(string hostId)
        {
            m_hostId = hostId;
        }

        public string HostId
        {
            get { return m_hostId; }
            set { m_hostId = value; }
        }

        public string HostName
        {
            get { return m_hostName; }
            set { m_hostName = value; }
        }

        public string MacAddresses
        {
            get { return m_macAddresses; }
            set { m_macAddresses = value; }
        }

        public string IPAddresses
        {
            get { return m_ipAddresses; }
            set { m_ipAddresses = value; }
        }

        public string OSName
        {
            get { return m_OS; }
            set { m_OS = value; }
        }

        public string ModelName
        {
            get { return m_ModelName; }
            set { m_ModelName = value; }
        }

        public string ModelVersion
        {
            get { return m_ModelVersion; }
            set { m_ModelVersion = value; }
        }

        string m_hostName;
        string m_hostId;
        string m_macAddresses;
        string m_ipAddresses;
        string m_OS;
        string m_ModelName;
        string m_ModelVersion;
    }

    public class ReplyRegisterNewHost : TransferObjectGenericReply<ReplyRegisterNewHost>
    {
        public ReplyRegisterNewHost()
        {
        }

        public ReplyRegisterNewHost(string toHostId)
        {
            m_toHostId = toHostId;
        }

        public string ToHostId
        {
            get { return m_toHostId; }
            set { m_toHostId = value; }
        }

        // use in case of second registration host in server (server associate hosts by HostName)
        public string OverrrideHostId
        {
            get { return m_overrrideHostId; }
            set { m_overrrideHostId = value; }
        }

        string m_toHostId;
        string m_overrrideHostId;
    }
}
